package com.execlTest.test1;

import java.io.FileInputStream;
import java.io.InputStream;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

/**
 * author : 冯孟活 ^_^
 * dates  : 2015年8月29日 上午11:22:01
 * class   : 读取Execl
 */
public class ReadExecl {
	public static void main(String[] args) throws Exception {
		
		/**
		 *  一、简单读取Execl的步骤：
		 * 		 1、通过流来读取Execl并存放到内存中；
		 *       2、通过WorkbookFactory工作簿工厂来读取内存中存放的execl文档流并创建出一个工作簿
		 *  	 3、通过工作簿来获取里面的每一个sheet文档
		 *  	 4、通过每个sheet文档来获取里面的每一行
		 *  	 5、通过每一行来获取每一个单元格
		 *  	 6、通过单元格来获取里面的值
		 *  
		 *  	 WorkbookFactory -->Workbook(XSSFWorkbook\HSSFWorkbook)
		 *  								|--Sheet(XSSFSheet\HSSFSheet)
		 *  									  |--Row(XSSFRow\HSSFRow)
		 *  										   |--Cell(XSSFCell\XSSFCell)
		 *  												|--CellValue
		 */
		
		InputStream fis = new FileInputStream("F:/execl/readTest1.xlsx"); // 先要读取 execl 文档
		Workbook wb = WorkbookFactory.create(fis); // 用WorkbookFactory工作簿工厂来通过读取 execl 文档流 来 创建一个工作簿
		Sheet sheetAt = wb.getSheetAt(0); // 通过工作簿来获取里面的每一个sheet文档
		Row row = sheetAt.getRow(0); // 通过每个sheet来获取每一行
		Cell cell = row.getCell(1); // 通过每一行来获取每一个单元格
		double val = cell.getNumericCellValue(); // 通过单元格来获取里面的值
		System.out.println(val);
		
	}
}
